package vista;
import com.cloudgarden.layout.AnchorConstraint;



import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;


import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;



import javax.swing.table.AbstractTableModel;

import util.Utilidades;


import modelo.Cliente;
import modelo.Servicio;
import modelo.Status;
import modelo.Sucursal;

import modelo.TipoServicio;
import modelo.dao.Servidor;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class DlgGestionarServicios extends javax.swing.JDialog {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JButton btIncluir;
	private JButton btModificar;
	private JButton btEliminar;
	private JButton btSalir;
	private JScrollPane jScrollPane1;
	private JLabel lblSeleccionarCliente;
	private JButton btVer;
	private JTable tbServicios;
	private JLabel lblTipoServicio;
	private JComboBox cbTipoServicio;
	private ArrayList<Servicio> servicios= new ArrayList<Servicio>();
	private AbstractTableModel tbModelServicios=null;
	private ComboBoxModel cbmtser;
	

	/**
	* Auto-generated main method to display this JDialog
	*/
	/*public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JFrame frame = new JFrame();
				DlgGestionarServicios inst = new DlgGestionarServicios(frame);
				inst.setVisible(true);
			}
		});
	}*/
	
	public DlgGestionarServicios(JFrame frame) {
		super(frame);
		initGUI();
	}
	
	private void initGUI() {
		try {
			{
				getContentPane().setLayout(null);
				this.setTitle("Gestionar Servicios");
				{
					final ArrayList<TipoServicio> tservicios=Servidor.servicios().consultarTiposServicio();
					cbmtser = new DefaultComboBoxModel(tservicios.toArray());
						
					cbTipoServicio = new JComboBox();
					getContentPane().add(cbTipoServicio);
					cbTipoServicio.setModel(cbmtser);
					cbTipoServicio.setBounds(227, 25, 145, 28);
				}
				{
					lblTipoServicio = new JLabel();
					getContentPane().add(lblTipoServicio);
					lblTipoServicio.setText("Tipo de Servicio:");
					lblTipoServicio.setFont(new java.awt.Font("Tahoma",1,11));
					lblTipoServicio.setBounds(115, 32, 112, 14);
				}
				{
					jScrollPane1 = new JScrollPane();
					getContentPane().add(jScrollPane1);
					jScrollPane1.setBounds(69, 124, 365, 172);
					{
						TipoServicio tser=(TipoServicio)cbTipoServicio.getSelectedItem();
						servicios = Servidor.servicios().consultarServiciosPorTipoYStatus(tser, Status.ACTIVO);

						tbModelServicios = new AbstractTableModel() {
							@Override
							public Object getValueAt(int fil, int col) {
								switch (col) {
								case 0: return servicios.get(fil).getDescripcion();
								}
								
								return null;
							}
							
							@Override
							public int getRowCount() {
								return servicios.size();
							}
							
							@Override
							public String getColumnName(int col) {
								switch (col) {
								case 0: return "Servicio";					
								}
								
								return null;
							}
							@Override
							public int getColumnCount() {
								return 1;
							}
						};
						tbServicios = new JTable();
						jScrollPane1.setViewportView(tbServicios);
						tbServicios.setModel(tbModelServicios);
						tbServicios.setBounds(54, 109, 165, 76);
					}
				}
				{
					btSalir = new JButton();
					getContentPane().add(btSalir);
					btSalir.setText("Salir");
					btSalir.setBounds(408, 342, 79, 40);
					btSalir.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Salir.gif")));
					btSalir.setHorizontalTextPosition(JButton.CENTER);
					btSalir.setVerticalTextPosition(JButton.BOTTOM);
				}
				{
					btEliminar = new JButton();
					getContentPane().add(btEliminar);
					btEliminar.setText("Eliminar");
					btEliminar.setBounds(214, 342, 79, 40);
					btEliminar.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/eliminar.PNG")));
					btEliminar.setHorizontalTextPosition(JButton.CENTER);
					btEliminar.setVerticalTextPosition(JButton.BOTTOM);
				}
				{
					btModificar = new JButton();
					getContentPane().add(btModificar);
					btModificar.setText("Modificar");
					btModificar.setBounds(115, 342, 87, 40);
					btModificar.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Modificar.png")));
					btModificar.setHorizontalTextPosition(JButton.CENTER);
					btModificar.setVerticalTextPosition(JButton.BOTTOM);
				}
				{
					btIncluir = new JButton();
					getContentPane().add(btIncluir);
					btIncluir.setText("Incluir");
					btIncluir.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/incluir.PNG")));
					btIncluir.setHorizontalTextPosition(JButton.CENTER);
					btIncluir.setVerticalTextPosition(JButton.BOTTOM);
					btIncluir.setBounds(19, 342, 79, 40);
				}
				{
					btVer = new JButton();
					getContentPane().add(btVer);
					btVer.setText("Ver");
					btVer.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Ver.png")));
					btVer.setHorizontalTextPosition(JButton.CENTER);
					btVer.setVerticalTextPosition(JButton.BOTTOM);
					btVer.setBounds(312, 342, 79, 40);
				}
				{
					lblSeleccionarCliente = new JLabel();
					getContentPane().add(lblSeleccionarCliente, new AnchorConstraint(143, 611, 236, 374, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
					lblSeleccionarCliente.setText("Seleccionar Servicio:");
					lblSeleccionarCliente.setFont(new java.awt.Font("Tahoma",1,11));
					lblSeleccionarCliente.setBounds(188, 84, 150, 40);
				}
			}
			this.setSize(517, 433);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	DlgGestionarServicios dgser=this;
	public void mostrar(JFrame frame) {
		
		setLocationRelativeTo(null);
		setVisible(true);
		
		btIncluir.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				DlgServicio dser= new DlgServicio(dgser);
				dser.mostrarIncluir(dgser);
				TipoServicio tser=(TipoServicio)cbTipoServicio.getSelectedItem();
				servicios = Servidor.servicios().consultarServiciosPorTipo(tser);
				tbModelServicios.fireTableDataChanged();
			}
		});
		
		
		btModificar.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				DlgServicio dser  = new DlgServicio(dgser);
				if(Utilidades.seleccion(tbServicios, dgser, "Servicio")){
					Servicio ser=servicios.get(dgser.tbServicios.getSelectedRow());
				    dser.mostrarModificar(dgser, ser);
				    TipoServicio tser=(TipoServicio)cbTipoServicio.getSelectedItem();
					servicios = Servidor.servicios().consultarServiciosPorTipoYStatus(tser, Status.ACTIVO);
					tbModelServicios.fireTableDataChanged();
				}
			}
		});
		
		btEliminar.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				if(Utilidades.seleccion(tbServicios, dgser, "Servicio"))
					 {  
					   	int i=dgser.tbServicios.getSelectedRow();
					    Servicio ser=servicios.get(i);
					    //Mensaje de verificacion
					   	int resp=JOptionPane.showConfirmDialog(dgser, "Esta seguro de eliminar el registro seleccionado ?", "Confirmar Eliminacion",JOptionPane.YES_NO_OPTION);
					   	if(resp==JOptionPane.YES_OPTION)
					   	{   ser.setStatus(ser.getStatus().INACTIVO);
					   		if(Servidor.servicios().modificarServicio(ser)!=null)
					   		{
					   			JOptionPane.showMessageDialog(dgser, "Registro eliminado exitosamente","Eliminacion",JOptionPane.INFORMATION_MESSAGE);
					   			TipoServicio tser=(TipoServicio)cbTipoServicio.getSelectedItem();
								servicios = Servidor.servicios().consultarServiciosPorTipoYStatus(tser, Status.ACTIVO);
								tbModelServicios.fireTableDataChanged();
					   		}
					   		else
					   			JOptionPane.showMessageDialog(dgser, "EL registro no pudo ser eliminado","Eliminacion",JOptionPane.ERROR_MESSAGE);
					   	}
					 }	
			}
		});
		
		btVer.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				DlgServicio dser= new DlgServicio(dgser);
				   if(Utilidades.seleccion(tbServicios, dgser, "Servicio"))
					{ Servicio ser=servicios.get(dgser.tbServicios.getSelectedRow());
				      dser.mostrarVer(dgser, ser);
				    }
			}
		});
		
		cbTipoServicio.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				TipoServicio tser=(TipoServicio)cbTipoServicio.getSelectedItem();
				servicios = Servidor.servicios().consultarServiciosPorTipoYStatus(tser, Status.ACTIVO);
				tbModelServicios.fireTableDataChanged();
				
			}});
		
		btSalir.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				dgser.dispose();
			}
		});
	}

}
